/**
 * Copyright (C) 2013-2014 the original author or authors.
 */
package com.foreveross.bsl.comments.application;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import org.springframework.data.domain.Page;

import com.foreveross.bsl.comments.application.vo.NoticeVo;
import com.foreveross.bsl.common.utils.web.QuerySpecs;

/**
 * 公告服务接口
 * 
 * @author Wangyi
 * @version v1.0
 * 
 * @date 2013-7-19
 * 
 */
@Produces({ MediaType.APPLICATION_JSON})
@Consumes({ MediaType.APPLICATION_JSON})
@Path("notices")
public interface NoticeService {

	@POST
	void add(NoticeVo notice);

	@DELETE
	@Path("{id}")
	void delete(@PathParam("id") String id);

	@GET
	@Path("{pageNumber}/{pageSize}")
	Page<NoticeVo> find(@PathParam("pageNumber") int pageNumber, @PathParam("pageSize") int pageSize,
			 @QueryParam("querySpecs") QuerySpecs querySpecs);
	
	@GET
	@Path("{id}")
	NoticeVo getById(@PathParam("id") String id);

	/**
	 * 获取指定应用的角色名列表
	 * @param appId
	 * @return
	 */
	@GET
	@Path("roles/{appId}")
	String[] getRoles(@PathParam("appId") String appId);
	
}
